﻿Triple7 = new function () {
    this.ColVal =
        {
            Val1: 0,
            Val2: 0,
            Val3: 0
        };
    this.col1 = 0;
    this.col2 = 0;
    this.col3 = 0;
    this.bgStart = 176;
    
    //Chạy tất cả các cột cho tới khi set kết quả
    this.scrollWait = function () {
        this.col1 = 0;
        this.col2 = 0;
        this.col3 = 0;
        this.scrollRandom(1);
        this.scrollRandom(2);
        this.scrollRandom(3);
    };
    //Chạy tất cả các cột tới config được lấy
    this.scrollConfig = function (cf, status, m_delay) {
        if (typeof (m_delay) == 'undefined')
            m_delay = true;
        
        this.scrollWait();
        this.ColVal.Val1 = cf.Val1;
        this.ColVal.Val2 = cf.Val2;
        this.ColVal.Val3 = cf.Val3;
        setTimeout("Triple7.col1=" + (cf.Val1 * 100) + ";",m_delay? 4000:0);
        setTimeout("Triple7.col2=" + (cf.Val2 * 100) + ";",m_delay? 4300:0);
        setTimeout("Triple7.col3=" + (cf.Val3 * 100) + ";",m_delay? 4600:0);

        var timeOut =m_delay? 4600:0;
        if (cf.Au > 0)
            setTimeout('Triple7.disableBet(true, true);', timeOut);
        if (cf.Ag > 0)
            setTimeout('Triple7.disableBet(true, false);', timeOut);
        if (cf.Au + cf.Ag == 0)
            setTimeout('Triple7.disableBet(false, true);', timeOut);

        if (status == 0)
            setTimeout("alert(\"Game Over\");", timeOut);
        if (status == 1)
            setTimeout("alert(\"Win\");", timeOut);
        
        setTimeout('$("#lblTotalCollect").html(COMMON.formatMoney(' + (cf.Au > 0 ? cf.Au : cf.Ag) + '));', timeOut);
        if(this.ColVal.Val1==1) {
            setTimeout('$("#btnChooseAction10").attr("disabled","disabled");', timeOut);
        } else {
            setTimeout('$("#btnChooseAction10").removeAttr("disabled");', timeOut);
        }
        if (this.ColVal.Val1 == 13) {
            setTimeout('$("#btnChooseAction11").attr("disabled","disabled");', timeOut);
        } else {
            setTimeout('$("#btnChooseAction11").removeAttr("disabled");', timeOut);
        }
        
        if (this.ColVal.Val2 == 1) {
            setTimeout('$("#btnChooseAction20").attr("disabled","disabled");', timeOut);
        } else {
            setTimeout('$("#btnChooseAction20").removeAttr("disabled");', timeOut);
        }
        if (this.ColVal.Val2 == 13) {
            setTimeout('$("#btnChooseAction21").attr("disabled","disabled");', timeOut);
        } else {
            setTimeout('$("#btnChooseAction21").removeAttr("disabled");', timeOut);
        }

        if (this.ColVal.Val3 == 1) {
            setTimeout('$("#btnChooseAction30").attr("disabled","disabled");', timeOut);
        } else {
            setTimeout('$("#btnChooseAction30").removeAttr("disabled");', timeOut);
        }
        if (this.ColVal.Val3 == 13) {
            setTimeout('$("#btnChooseAction31").attr("disabled","disabled");', timeOut);
        } else {
            setTimeout('$("#btnChooseAction31").removeAttr("disabled");', timeOut);
        }
    };
    
    //Tạo hiệu ứng lắc quanh giá trị cần trỏ
    this.animateBackgroundPos = function (id, start, end, mid, cur) {
        var x = 0;
        if (start < end)
            x = 1;
        if (start > end)
            x = -1;


        $("#" + id).css("background-position", "-100px " + cur + "px");
        if (((x == 1 && cur < end) || (x == -1 && cur > end)) && (start != end)) {
            setTimeout("Triple7.animateBackgroundPos(\"" + id + "\"," + start + "," + end + "," + mid + "," + (cur + x * 5) + ")", 5);
        } else {
            var m = start - end;
            m = m > 0 ? m : (-m);
            if (m > 10)
                setTimeout("Triple7.animateBackgroundPos(\"" + id + "\"," + end + "," + (start + x * 10) + "," + mid + "," + end + ")", 5);
            else
                $("#" + id).css("background-position", "0 " + mid + "px");
        }
    };

    //Cho chạy đến khi có giá trị của cột
    //Ex: col=1: cột 1
    //      this.col1: Giá trị của cột 1
    this.scrollRandom = function (col) {
        if (col == 1) {
            var pos1 = (this.col1 > 0 ? (-1 * this.col1 + this.bgStart) : this.col1);
            $("#col1").css("background-position", "-100px " + pos1 + "px");
            if (this.col1 <= 0) {
                this.col1 = this.col1 - 10;
                if (this.col1 < -9999999999)
                    this.col1 = 0;
                setTimeout("Triple7.scrollRandom(1)", 1);
            } else {
                this.animateBackgroundPos("col1", pos1 + 50, pos1 - 50, pos1, pos1 + 50);
            }
        }
        if (col == 2) {
            var pos2 = (this.col2 > 0 ? (-1 * this.col2 + this.bgStart) : this.col2);
            $("#col2").css("background-position", "-100px " + pos2 + "px");
            if (this.col2 <= 0) {
                this.col2 = this.col2 - 10;
                if (this.col2 < -9999999999)
                    this.col2 = 0;
                setTimeout("Triple7.scrollRandom(2)", 10);
            } else {
                this.animateBackgroundPos("col2", pos2 + 50, pos2 - 50, pos2, pos2 + 50);
            }
        }
        if (col == 3) {
            var pos3 = (this.col3 > 0 ? (-1 * this.col3 + this.bgStart) : this.col3);
            $("#col3").css("background-position", "-100px " + pos3 + "px");
            if (this.col3 <= 0) {
                this.col3 = this.col3 - 10;
                if (this.col3 < -9999999999)
                    this.col3 = 0;
                setTimeout("Triple7.scrollRandom(3)", 10);
            } else {
                this.animateBackgroundPos("col3", pos3 + 50, pos3 - 50, pos3, pos3 + 50);
            }
        }

    };

    //Lấy Random 1 số từ 1-> 13
    this.getRandom = function () {
        return Math.floor((Math.random() * 13) + 1);
    };

    //Tạo style disable nút đặt cược hay không
    this.disableBet = function (mDis, mAu) {
        $("#rdoAuBet").removeAttr("checked");
        $("#rdoAgBet").removeAttr("checked");
        if (mAu)
            $("#rdoAuBet").attr("checked", "checked");
        else {
            $("#rdoAgBet").attr("checked", "checked");
        }
        if (mDis) {
            $("#txtBet").attr("disabled", "disabled");
            $("#btnBet").attr("disabled", "disabled");
            $("#rdoAuBet").attr("disabled", "disabled");
            $("#rdoAgBet").attr("disabled", "disabled");
        } else {
            $("#txtBet").removeAttr("disabled");
            $("#btnBet").removeAttr("disabled");
            $("#rdoAuBet").removeAttr("disabled");
            $("#rdoAgBet").removeAttr("disabled");
        }
    };


    //Thực hiện chọn High hoặc Low
    //mcol: cột(1,2,3)
    //mhi: chọn Hight hay không(1,0)
    this.chooseAction = function (mcol, mhi) {
        var mData = {
            col: mcol,
            hi: mhi,
            val1: this.ColVal.Val1,
            val2: this.ColVal.Val2,
            val3: this.ColVal.Val3
        };
        if (this.col1 < 0)
            return;

        if (this.col2 < 0)
            return;

        if (this.col3 < 0)
            return;

        this.scrollWait();
        $.ajax({
            type: "POST",
            url: "/Service/WSGame.asmx/Choose",
            data: JSON.encode(mData),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            cache: false,
            success: function (data) {
                if (typeof (data) != "undefined" && data != null) {

                    var rel = data.d.Result;
                    if (rel == -1) {
                        alert("Bạn đã hết phiên đăng nhập, vui lòng thử lại sau");
                    }
                    if (rel == -3) {
                        alert("Bạn không thể chọnt trạng thái này");
                    }
                    if (rel == 0) {
                        alert("Có lỗi trong quá trình xử lý! Chúng tôi xin lỗi về sự bất tiện này");
                    }
                    var status = -1;

                    if (rel == 4) {
                        status = 0;
                    }

                    if (rel == 5) {
                        status = 1;
                    }

                    Triple7.scrollConfig(data.d, status);
                }
            },
            error: function (xhr, status) {
                alert("Có lỗi xảy ra trong quá trình xử lý! Chúng tôi xin lỗi về sự bất tiện này");
                window.location = window.location;
            }
        });
    };

    //Bind các giá trị config tới các ô trên giao diện
    this.bindRateConfig = function (rateConfig) {
        if ((rateConfig == undefined) || (rateConfig == null))
            return;
        var h1 = rateConfig.Column1WinForHigh;
        var h2 = rateConfig.Column2WinForHigh;
        var h3 = rateConfig.Column3WinForHigh;

        var l1 = rateConfig.Column1WinForLow;
        var l2 = rateConfig.Column2WinForLow;
        var l3 = rateConfig.Column3WinForLow;

        $("#spHiCol1").html(COMMON.formatMoney(h1));
        $("#spHiCol2").html(COMMON.formatMoney(h2));
        $("#spHiCol3").html(COMMON.formatMoney(h3));

        $("#spLoCol1").html(COMMON.formatMoney(l1));
        $("#spLoCol2").html(COMMON.formatMoney(l2));
        $("#spLoCol3").html(COMMON.formatMoney(l3));
    };

    //Đặt cược
    this.betGame = function () {
        var mTypeBet = 2;
        if ($("#rdoAuBet:checked").length > 0) {
            mTypeBet = 1;
        }
        var mMoney = parseInt($("#txtBet").val());
        mMoney = mMoney > 0 ? mMoney : 0;
        if (mMoney <= 0)
            alert("Số tiền cược phải >0");

        var mData = {
            money: mMoney,
            typeBet: mTypeBet,
            val1: this.ColVal.Val1,
            val2: this.ColVal.Val2,
            val3: this.ColVal.Val3
        };
        this.scrollWait();
        $.ajax({
            type: "POST",
            url: "/Service/WSGame.asmx/BetGame",
            data: JSON.encode(mData),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            cache: false,
            success: function (data) {
                if (typeof (data) != "undefined" && data != null) {
                    var rel = data.d.Result;
                    if (rel == -1) {
                        alert("Bạn đã hết phiên đăng nhập, vui lòng thử lại sau");
                    }
                    if (rel == -2) {
                        alert("Tài khoản của bạn không đủ để đặt cược!");
                    }
                    if (rel == -3) {
                        alert("Bạn không thể đặt cược!");
                    }
                    if (rel == 0) {
                        alert("Có lỗi trong quá trình xử lý! Chúng tôi xin lỗi về sự bất tiện này");
                    }

                    Triple7.disableBet(true, mTypeBet == 1 ? true : false);

                    Triple7.scrollConfig(data.d, -1);
                }
            },
            error: function (xhr, status) {
                alert("Có lỗi xảy ra trong quá trình xử lý! Chúng tôi xin lỗi vì sự bất tiện này");
                //window.location = window.location;
            }
        });
    };

    //Thu tiền
    this.collectMoney = function () {
        $.ajax({
            type: "POST",
            url: "/Service/WSGame.asmx/Collect",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            cache: false,
            success: function (data) {
                if (typeof (data) != "undefined" && data != null) {
                    var rel = data.d;
                    if (rel == -1) {
                        alert("Bạn đã hết phiên đăng nhập, vui lòng thử lại sau");
                        window.location = window.location;
                    }
                    if (rel == -3) {
                        alert("Bạn không thể nhận tiền!");
                    }
                    if (rel == -4) {
                        alert("Bạn chưa chơi vòng nào nên bạn không thể nhận tiền!");
                    }
                    if (rel == 0) {
                        alert("Có lỗi trong quá trình xử lý! Chúng tôi xin lỗi về sự bất tiện này");
                    }
                    if (rel > 0) {
                        $("#lblTotalCollect").html(COMMON.formatMoney(0));
                        Triple7.disableBet(false, true);
                    }
                }
            },
            error: function (xhr, status) {
                alert("Có lỗi xảy ra trong quá trình xử lý! Chúng tôi xin lỗi vì sự bất tiện này");
                window.location = window.location;
            }
        });
    };
}